////////////////////////////////////////////////////////////////////////////
//
//  CryEngine Source File.
//  Copyright (C), Crytek, 1999-2010.
// -------------------------------------------------------------------------
//  File name:	AssetTextureDatabase.h
//  Version:	v1.00
//  Created:	15/04/2009 by Paulo Zaffari
//  Description:	Header file for the class implementing IAssetDisplay
//								interface. It declares the headers of the actual used 
//								functions.
// -------------------------------------------------------------------------  
//  History:
//		15/04/2009	11:00 - Paulo Zaffari - created
//		12/03/2010	17:16 - Nicusor Nedelcu - refactored
//
//////////////////////////////////////////////////////////////////////////// 

#ifndef __AssetTextureDatabase_h__
#define __AssetTextureDatabase_h__
#pragma once

#include "Asset Browser/AssetBrowserCommon.h"

class CAssetTextureDatabase : public CAssetDisplayDatabase, public IClassDesc
{
	public:

		CAssetTextureDatabase();
		~CAssetTextureDatabase();

		void								CacheFieldsInfoForAlreadyLoadedAssets();
		void								PrecacheFieldsInfoFromFileDB(const XmlNodeRef& db);
		void								Refresh();
		const char*					GetDatabaseName() const;
		const char*					GetDatabaseTypeExt() const;
		const char*					GetTransactionFilename() const;

		//////////////////////////////////////////////////////////////////////////
		// From IClassDesc
		//////////////////////////////////////////////////////////////////////////
		virtual ESystemClassID SystemClassID() { return ESYSTEM_CLASS_ASSET_DISPLAY; };
		REFGUID ClassID()
		{
			// {509EE025-855B-441b-B56E-D4949180968A}
			static const GUID guid = { 0x509ee025, 0x855b, 0x441b, { 0xb5, 0x6e, 0xd4, 0x94, 0x91, 0x80, 0x96, 0x8a } };
			return guid;
		}

		virtual const char*			ClassName() { return "Asset Display Texture"; };
		virtual const char*			Category() { return "Asset Display"; };
		virtual CRuntimeClass*	GetRuntimeClass(){return 0;};
		virtual void						ShowAbout() {};

		//////////////////////////////////////////////////////////////////////////
		// From IUnknown - Inherited through IClassDesc.
		//////////////////////////////////////////////////////////////////////////
		HRESULT STDMETHODCALLTYPE	QueryInterface( const IID &riid, void **ppvObj );
};

#endif //__AssetTextureDatabase_h__
